// 定义服务器主机地址和端口
const host = 'http://localhost:8000';


// 定义一个函数，用于重新加载书籍列表
function sel() {
    // 清空现有的书籍列表行
    $('.booklist > tr').remove();
    // 初始化书籍列表
    init();
}

// 定义一个函数，用于跳转到添加书籍的页面
function add() {
    // 跳转到书籍添加或编辑页面
    location.href = './bookAddOrEdit.html';
}

// 定义一个函数，用于跳转到编辑书籍的页面
function edit(id) {
    // 跳转到书籍添加或编辑页面，并传递当前书籍的ID
    location.href = `./bookAddOrEdit.html?id=${id}`;
}

// 定义一个函数，用于删除指定ID的书籍
function del(id) {
    // 弹出确认对话框，询问用户是否确定删除
    if (confirm('确定要删除吗？')) {
        // 发起DELETE请求到服务器，删除指定ID的书籍
        axios.delete(`${host}/books/${id}`).then(res => {
            // 检查服务器响应的数据状态码
            if (res.data.code === 1000) {
                // 如果删除成功，弹出提示信息
                alert('删除成功');
                // 重新加载书籍列表
                sel();
            }
        }).catch(error => {
            // 处理请求错误
            console.error('删除书籍时发生错误:', error);
        });
    }
}

const init = function () {
    const keyword = $('#keyword').val().trim();
    axios.get(`${host}/books`, { params: { keyword: keyword } }) // 使用params对象传递参数
        .then(res => {
            if (res.data && res.data.data) { // 确保响应数据结构正确
                const data = res.data.data;
                const html = data.map(item =>
                    `
                        <tr>
                            <td>${item.id}</td>
                            <td>${item.bookname}</td>
                            <td>${item.author}</td>
                            <td>${item.description}</td> 
                            <td>
                                <input type="button" value="编辑" onclick="edit(${item.id})">
                                <input type="button" value="删除" onclick="del(${item.id})">
                            </td>
                        </tr>
                    `
                ).join('');
                $('.booklist tbody').html(html); // 使用html而不是append，以避免重复添加
            } else {
                console.error('响应数据格式不正确:', res.data);
            }
        })
        .catch(error => {
            console.error('加载书籍列表时发生错误:', error);
            // 可以在这里添加用户友好的错误提示
            alert('加载书籍列表时发生错误，请稍后重试！');
        });
};

init();
